package com.wn.carport.mapper;

import com.wn.carport.vo.CarPortAreaVillageVo;

import com.wn.common.pojo.AreaVillage;
import com.wn.common.pojo.CarPort;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;

/**
 * @BelongsProject: shared_parking
 * @BelongsPackage: com.wn.carport.mapper
 * @Author: 刘辉
 * @CreateTime: 2020-06-11 13:14
 * @Description:
 */
public interface CarPortMapper {

    /*根据车位主键查询车位信息/根据主键判断车位是否存在*/
    CarPort getCarPortById(@Param("cpId") String cpId);

    /*查询所有的车位信息列表 分页展示*/
    List<CarPort> getCarPolAll();

    /*根据主键删除车位信息  逻辑删除*/
    Integer deleteCarPort(@Param("cpId") String cpId);

    /*根据主键物理删除*/
    Integer deleteCarPortPhy(@Param("cpId") String cpId);

    /*根据主键修改车位信息*/
    Integer updateCarPort(CarPort carPort);

    /*添加车位信息*/
    Integer addCartPort(CarPortAreaVillageVo carPortAreaVillageVo);

    /*高级检索车位信息*/
    List<CarPort> superSearch(@Param("superSearchKeyWord")String superSearchKeyWord);

    /*高级检索车位信息2,物业方高级检索*/
    List<CarPort> superSearch2(@Param("superSearchKeyWord")String superSearchKeyWord);

    /*高级检索车位信息3,用户根据地区或者小区高级检索*/
    List<CarPort> superSearch3(@Param("superSearchKeyWord")String superSearchKeyWord);

    /*查询出所有的地区信息*/
    List<AreaVillage> getAreaAll();

    List<AreaVillage> getAreaAll01();

    /*根据地区名称查询小区*/
    List<AreaVillage> getVillageByAreaName(@Param("aName") String aName);

    /*根据小区查看车位*/
    List<CarPort> getCarPortByVillage(@Param("aName") String aName);

    /*查询车位数据总条数*/
    Integer getTotal();

    /*分页查询车位列表003  区域表/车位表联合查询*/
    List<CarPortAreaVillageVo> getCarPortAll03(@Param("aName") String aName);

    /*根据小区名称模糊查询车位列表*/
    List<CarPortAreaVillageVo> getCarPortByAreaVillageName(@Param("aName") String aName);

    /*根据地区id查小区*/
    List<AreaVillage> getVillageByAreaId(@Param("aid") String aid);

    /*上下架*/
    Integer upDownShelf(@Param("cpId") String cpId,@Param("cpStatus") Integer cpStatus);

    /*根据车位查询出地区名称*/
    AreaVillage getAreaNameByCpId(@Param("cpId") String cpId);

    /*查询车位的价格/地址（区域表/车位表联合）*/
    CarPortAreaVillageVo getCarPortAreaVo(@Param("cpId") String cpId);

    /*根据地区名称查看下面的小区*/
    List<AreaVillage> getAreaVillagedo(@Param("aName") String aName);

    /*根据区域名称获取id*/
    AreaVillage getvillageIdByVname(@Param("aName") String aName);

    /*根据车位id获取车位/价格/地区/小区*/
    CarPortAreaVillageVo getCarportVo(@Param("cpId") String cpId);

    /*根据小区名称  地区名称*/
    AreaVillage getAreaName(@Param("vName") String vName);


    //根据车位的小区名称，获取这个小区下面所有车位对象
    @Select("select * from carport where v_name = #{vName} and is_deleted = #{isDeleted} order by cp_code")
    List<CarPort> getListByName(CarPort carPort);

    //查询所有用户 支持多条件分页排序查询
    List<CarPort> getAllCarPort(CarPort carPort);

    //动态添加车位
    Integer addCarport(CarPort carPort);

    //判断车位名称是否重复
    @Select("select count(0) from carport where carname = #{carname} and propertyid = #{propertyid}")
    Integer exsitCarname(CarPort carPort);

    //批量逻辑删除车位
    Integer deleteSomeCarport(@Param("array") String[] array);

}
